# vim: set sts=2 ts=8 sw=2 tw=99 et ft=python:
import os.path

if AMXX.mysql_path:
  binary = AMXX.MetaModule(builder, 'mysql')

  binary.compiler.cxxincludes += [
    os.path.join(AMXX.mysql_path, 'include'),
    os.path.join(builder.currentSourcePath, 'mysql'),
    os.path.join(builder.currentSourcePath, 'thread'),
  ]

  binary.compiler.defines += [
    'SM_DEFAULT_THREADER',
    'HAVE_STDINT_H',
  ]

  binary.sources = []

  if builder.target_platform == 'linux' or builder.target_platform == 'mac':
    binary.compiler.defines += ['stricmp=strcasecmp']
    binary.compiler.linkflags += [
      os.path.join(AMXX.mysql_path, 'lib', 'libmysqlclient_r.a'),
      '-lpthread',
      '-lm',
    ]
    if builder.target_platform == 'linux':
      binary.compiler.linkflags += [
        '-lrt'
      ]
  elif builder.target_platform == 'windows':
    binary.compiler.linkflags += [
      os.path.join(AMXX.mysql_path, 'lib', 'mysqlclient.lib'),
      'ws2_32.lib',
      '/EXPORT:GiveFnptrsToDll=_GiveFnptrsToDll@8,@1',
      '/SECTION:.data,RW'
    ]
    if binary.compiler.vendor == 'msvc' and binary.compiler.version >= 1900:
       binary.sources += [
        '../../public/msvc/msvc15hack.c'
      ]

  binary.compiler.linkflags += [AMXX.zlib.binary]

  binary.sources += [
    'basic_sql.cpp',
    'handles.cpp',
    'module.cpp',
    'threading.cpp',
    '../../public/sdk/amxxmodule.cpp',
    'oldcompat_sql.cpp',
    'thread/BaseWorker.cpp',
    'thread/ThreadWorker.cpp',
    'mysql/MysqlQuery.cpp',
    'mysql/MysqlResultSet.cpp',
    'mysql/MysqlDatabase.cpp',
    'mysql/MysqlDriver.cpp',
  ]

  if builder.target_platform == 'windows':
    binary.sources += ['version.rc']

  if builder.target_platform == 'windows':
    binary.sources += [
      'thread/WinThreads.cpp',
    ]
  else:
    binary.sources += [
      'thread/PosixThreads.cpp',
    ]

  AMXX.modules += [builder.Add(binary)]
